package com.cimr.comm.dao;

import com.cimr.comm.po.Group;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by liqi on 2018/1/31.
 * liqiwork@qq.com
 */
public interface GroupDao {
    List<Group> getGroupAndSonsByGroupId(@Param("groupId") String groupId);

    List<Group> getSonsByGroupId(@Param("groupId") String groupId);

    /**
     * 取指定组织id的组织和其子级组织
     * @param groupName 要搜索的组织名称
     * @param groupId 指定的组织id
     * @return
     */
    List<Group> getGroupListWithName(@Param("groupName") String groupName, @Param("groupId") String groupId);

    /**
     * 取指定父组织下的组织
     * @param groupName 要搜索的组织名称
     * @return
     */
    List<Group> getGroupListByName(@Param("groupName") String groupName, @Param("parentId") String parentId);

    Group getGroupById(@Param("id") String id);

    int insertObject(@Param("id") String id,
                     @Param("groupKey") String groupKey,
                     @Param("groupName") String groupName,
                     @Param("comment") String comment,
                     @Param("orderId") Float orderId,
                     @Param("parentId") String parentId,
                     @Param("parentName") String parentName,
                     @Param("parentIds") String parentIds,
                     @Param("grade") Integer grade);

    int updateObject(@Param("id") String id,
                     @Param("groupKey") String groupKey,
                     @Param("groupName") String groupName,
                     @Param("comment") String comment,
                     @Param("orderId") Float orderId,
                     @Param("parentId") String parentId,
                     @Param("parentName") String parentName,
                     @Param("parentIds") String parentIds);

    int deleteObjectById(@Param("id") String id);

    List<Group> getGroupList();
}
